#ifndef ZONE_HH_
# define ZONE_HH_

# include "Object.hh"

class Zone
{
public:
  /** \return list of objects which belong to the path
   **   source <-> destination
   */
  // cd add velocity and calc impact strength
  std::Vector<Object> collide(Vector3 source,
			      Vector3 direction,
			      Vector3 destination);

  /** \return true if Object obj belongs to more than one zone
   */
  bool isInBorder(Object obj);

private:
  /// content: all object belonging to this zone
  // including characters ?
  std::Map<Object> objList;


  /// listing of all characters on this map
  std::Map<Character> characterList;

  // *4 Vector3 ?
  // a single borderland ?
  // limitsInside  // type ?
  // limitsOutside  // type ?

  /// current zone meteo
  Meteo meteo;

  // cd add properties (P* on functions to apply)
  // [limit vision{sand, ...}, velocity, enhance sound, ...]
};

#endif /* !ZONE_HH_ */
